package com.unismc.charge.collector.service;

import com.gitee.loyo.data.*;
import com.gitee.loyo.post.NotifyChargeOrderInfoPost;
import com.gitee.loyo.post.NotifyEquipChargeStatusPost;
import com.gitee.loyo.result.QueryStationStatsResult;
import com.gitee.loyo.result.QueryStationStatusResult;
import com.gitee.loyo.result.QueryStationsResult;

/**
 * @author: Forward Seen
 * @description: 推送查询或接收的数据
 * @createTime: 2024/4/28 11:09
 * @since: 1.0
 */
public interface PushService {

    /**
     * 充电站信息
     * @param stationsForm
     */
    void pushStationInfos(QueryStationsResult stationsForm);

    void pushStationInfo(StationInfo stationInfo);

    void pushEquipmentInfo(EquipmentInfo equipmentInfo);

    void pushConnectorInfo(ConnectorInfo connectorInfo);

    /**
     * 充电站状态
     * @param stationsStatus
     */
    void pushStationsStatus(QueryStationStatusResult stationsStatus);

    void pushStationStatus(StationStatusInfo stationStatus);

    /**
     * 充电站接口状态
     * @param connectorStatus
     */
    void pushConnectorStatus(ConnectorStatusInfo connectorStatus);

    /**
     * 统计信息
     * @param stationsStatus
     */
    void pushStationsStats(QueryStationStatsResult stationsStatus);

    void pushStationStats(StationStatsInfo stationStats);

    void pushEquipmentStats(EquipmentStatsInfo equipmentStats);

    void pushConnectorStats(ConnectorStatsInfo connectorStats);

    /**
     * 充电状态
     * @param chargeStatus
     */
    void pushChargeStatus(NotifyEquipChargeStatusPost chargeStatus);

    /**
     * 充电订单信息
     * @param chargeOrderInfo
     */
    void pushChargeOrderInfo(NotifyChargeOrderInfoPost chargeOrderInfo);

}
